package t327.mapper;

import t327.pojo.staff.Department;
import t327.pojo.staff.ReimbursementApplication;
import t327.pojo.staff.StaffManagement;
import t327.pojo.staffView.StaffManagementView;
import t327.pojo.staffView.StaffPunchCardView;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;

public interface StaffManagementMapper<list> {

    List<StaffManagement> getAllBoardMaker();

    List<StaffManagement> getAllStylist();
    //添加人员表
    int addStaffManagement(StaffManagement data);
    //查询部门
    List<Department> selectStaffDepartment();
    //查所有的人员信息
    List<StaffManagementView> queryAll();
    //查询状态为在职的人员
    int selectStaffStatus(Long id);
    //修改离职时间
    int updateStaffResignationTime(Long id, LocalDate futureDate);
    //实习和正式工的查询
    int selectType(Long id);
    //待离职的人员id
    List<Long> SelectStaffDepartment(LocalDate currentDate);
    //修改待离职的人员为离职状态
    int updateStaffResignationTime1(Long id);
    //id查询
    List<StaffManagement> selectId(Long id);
    //修改信息
    int updateStaff(StaffManagement staffManagement);
    //查询所有在职人员和待离职人管的id
    List<Long> queryAllId();
    //根据id去查询img
    List<String> queryImg(Long id);
    //人脸添加打卡记录
    int addPunchCard(Long id, Date printTime, Date hourMinuteSecond);
    //自动添加打卡记录表
    int addStaffPunchCardTwo(Long id);
    //查询staff_punch_card_view视图
    List<StaffPunchCardView> queryStaffPunchCardView();
    //修改计件数
    int updateByThePiece(Long id, Long staffNumberOfCases);
    //申请报销
    int addReimbursementApplication(ReimbursementApplication reimbursementApplication);
    //补卡
    int updateReissueCard(StaffPunchCardView data);
    //条件查询
    List<StaffPunchCardView> queryStaffPunchCardViewWhere(String name);
}
